<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Nota_lst( $this );

	class Nota_lst extends Lst
	{
	function Nota_lst( &$oModule )
		{
			$this->Lst( $oModule );
		}
	function setLevel()
		{
			switch ( $this->getOptionView() )
			{
				case 'R':
					$this->aShowColumns = array( 'bEstrella', 'ncRotulo', 'Nota', 'Usuario','Fecha', 'Descripcion');
					break;
				case 'L':
					$this->aShowColumns = array( 'bEstrella', 'ncRotulo','Nota');
					break;
			}
		}

	function initialize()
		{
			$this->oFiltro = $this->oModule->loadClass( 'Nota_frm' );
			$this->aFields = array_merge ( (array)$this->aFields,  (array)$this->oFiltro->getFieldArray() );
			
			$this->aFields['ncProyecto'] = getParam('ncProyecto');
			$this->setTitle ( "Notas" );
			$this->setSummary( "Esta tabla contiene las notas de las agendas" );
			$this->addColumnStar ( 'bEstrella', MODIFICAR_ESTRELLA_NOTA, 'ncNota', 'bEstrella' );
			$this->addColumnTag( 'ncRotulo', ACTUALIZAR_TAG_NOTA, 'ncNota', 'atNotaRotulo', $this->oDatabase->getKeyArray('SELECT ncRotulo, cdRotulo FROM atRotuloNota WHERE ncGrupo = ' . obtenerMiGrupo()  ) );
			$this->addColumn ( 'Nota', 'cdNota' );
			$this->setColumnAction ( 'Nota', VER_NOTA, 'ncNota');
			$this->addColumn ( 'Descripcion', 'cContenido' );
			$this->addColumnDate ( 'Fecha', 'dDesde' );
			$this->addColumn( 'Usuario', 'cApellido');
			$this->setColumnAction ( 'Usuario', VER_PERSONA, 'ncUsuario');
		}
	function query()
		{
			$ncMiGrupo = obtenerMiGrupo();
			// Arma el Query
				$cSql = "SELECT Nt.bEstrella, Nt.ncNota, Nt.cdNota, cContenido, cApellido, Nt.dDesde, Nt.ncUsuario
							FROM atNota as Nt
							LEFT JOIN atPersona as Per ON Per.ncPersona = Nt.ncUsuario ";
				$cSql .= armarJoin (" JOIN atProyectoNota as PNo ON PNo.ncNota = Nt.ncNota AND PNo.ncProyecto = $ncProyecto", $ncProyecto);
			// Arma el Filtro de la Consulta
				$this->oFiltro->setDefaultSearchField( "cdNota" );
				$this->oWhere->addArray ( $this->oFiltro->getFilterdArray() , 'Nt' );
				if ( $ncMiGrupo )
					$this->oWhere->addExpression ( "Nt.ncVisibilidad", " (Nt.ncVisibilidad <> " . VISIBILIDAD_PRIVADO . " OR Nt.ncGrupo = $ncMiGrupo) " );
				else
					$this->oWhere->addExpression ( "Nt.ncVisibilidad", " Nt.ncVisibilidad = " . VISIBILIDAD_PUBLICO );
				return $cSql . $this->oWhere->make();
		}
	function makeListActions()
		{
			$ncGrupo = getParam( 'ncGrupo');
			$cParametroRegistro =  "ncProyecto=" . $this->aFields["ncProyecto"] ;
			if ( $ncGrupo  == '' || $ncGrupo  == obtenerMiGrupo() )
			{
				$this->addListAction ( AGREGAR_NOTA, $cParametroRegistro, 'I', VENTANA_SECUNDARIA );
			}
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro =  "ncNota=" . $aRow["ncNota"];
			$this->addRowAction ( MODIFICAR_NOTA, $cParametroRegistro, '', VENTANA_SECUNDARIA );
			$this->addRowAction ( ELIMINAR_NOTA, $cParametroRegistro);
			$this->addRowAction ( VER_NOTA, $cParametroRegistro);
		}
	}
?>
